As is well known in the art, the fundamental concept of a hash is to provide repeatable mathematical algorithm that will accept a key input value which is processed by a special algorithm into a numeric output value in a known range of numbers. The numeric output value is known as a hash bucket number and, in the data processing art, is used as an identifier to describe the physical memory location(s) in which data records are to be stored or retrieved from. Thus, within process for storing and retrieving data records, once a data record has been placed in memory (typically, a disk memory) using a hashing algorithm as a step in the storage process, then access to the data record can be obtained by reuse of the hashing algorithm to locate the record in the counterpart retrieval process.
For the algorithms, hash bucket numbers are logically contiguous numbers which can range from 1 to n. Control interval (hereinafter "CI") numbers are physically contiguous disk segments also numbered from 1 to n. Irregularities in the mapping may exist as follows:
1) The first bucket (bucket number 0) may not start at CI number 0. PA1 2) There may be multiple buckets per CI. PA1 3) There may be multiple CIs per bucket. PA1 4) Discontinuities may exist in the CI range at some regular interval. PA1 1) obtaining a value "MIN" by employing the equation: EQU MIN=BUCKET#/(INTERVAL-1); PA1 2) obtaining a value "CLOSE" by employing the equation: EQU CLOSE=(MIN * INTERVAL)+START.sub.-- CI; PA1 3) obtaining a value "DIST" by employing the equation: EQU DIST=INTERVAL-(CLOSE MOD INTERVAL) PA1 4) making a YES/NO decision by making the determination: EQU (BUCKET#-(MIN * (INTERVAL-1))) &lt;DIST?; PA1 5) if the decision in sub-step 4) is YES, obtaining the CI# by employing the equation: EQU CI#=START.sub.-- CI+BUCKET#+MIN; PA1 (6) if the decision in sub-step 4) is NO, obtaining the CI# by employing the equation: EQU CI#=START.sub.-- CI+BUCKET#+MIN+1. PA1 1) obtaining a value "BCI#" by employing the equation: EQU BCI#=BUCKET#; PA1 2) obtaining a trial value "CI#" by employing the equation: EQU CI#=BCI#+START.sub.-- CI; PA1 3) obtaining a revised interval value "INTERVAL" by employing the equation: EQU INTERVAL=INTERVAL-1; PA1 4) obtaining a revised value "BCI#" by employing the equation: EQU BCI#=BCI#-((START.sub.-- CI+INTERVAL) & .about.INTERVAL)-START.sub.-- CI PA1 5) making a YES/NO decision by making the determination: EQU BCI#&gt;=0?; PA1 6) if the decision in sub-step 5) is YES, obtaining the CI# by employing the equation: EQU CI#=CI#+(BCI#/INTERVAL)+1; PA1 7) if the decision in sub-step 5) is NO, accepting the CI# obtained in sub-step 2) as the final CI#
For example, a disk organization scheme may place special CIs at regular intervals to efficiently manage disk space usage. Therefore, when mapping a hash bucket to a CI, these discontinuities must be dealt with by a hashing algorithm. Further, those skilled in the art will appreciate that a hashing algorithm must be absolutely accurate and also highly efficient and fast in order that the transformation process can proceed very quickly and not significantly lower system performance.